package com.kty.methods.xlr.method.entrance;

import com.kty.cesuan.pojo.Xlr;
import com.kty.methods.utils.Utils;
import com.kty.methods.xlr.method.xlr.LiuRen;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class XiaoLiuRen {

    /**
     * ★入口：信息封装
     */
    public void run(LiuRen liuRen) {
        // 信息封装
        infoEncapsulation(liuRen);
    }

    /**
     * 信息封装
     */
    protected void infoEncapsulation(LiuRen liuRen){

        // ①设置信息（顺序必须一致）
        liuRen.solarDate(); // 设置公历日期
        liuRen.lunarDateStr(); // 获取并设置【农历日期】
        liuRen.monthInfo(); // 获取并设置月份'落点数'和'落点信息'
        liuRen.dayInfo(); // 获取并设置天数'落点数'和'落点信息'
        liuRen.timeInfo(); // 获取并设置天数'落点数'和'落点信息'
        liuRen.zhongGuaInfo(); // 获取并设置'终卦'信息解读

    }

//**********************************************************************************************************************

    /**
     * 保存至数据库（分段信息）
     */
    public Xlr infoToSql(LiuRen liuRen) {

        Xlr xlr = new Xlr();

        // 设置信息
        xlr.setId(Utils.getId(4)); // 设置id
        xlr.setLunarDate(liuRen.getLunarDateStr()); // 设置农历日期
        xlr.setSolarDate(liuRen.getSolarDate()); // 设置公历日期
        xlr.setMonthDian("【[" + liuRen.getMonthInfo() + "卦](" + liuRen.getMonthPosition() + ")】"); // 设置月份落(终)点信息
        xlr.setDayDian("【[" + liuRen.getDayInfo() + "卦](" + liuRen.getDayPosition() + ")】"); // 设置天数落(终)点信息
        xlr.setTimeDian("【[" + liuRen.getTimeInfo() + "卦](" + liuRen.getTimePosition() + ")】"); // 设置时辰落(终)点信息
        xlr.setCreateTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒"))); // 设置操作时间
        xlr.setResult(liuRen.getZhongGuaInfo());
        return xlr;

    }

}
